package cn.com.dycc.party_org.organize.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import cn.com.dycc.party_org.organize.entity.OrganizeEntity;
import cn.com.dycc.party_org.organize.entity.OrganizeUserInfo;
import cn.com.dycc.party_org.organize.param.OrganizeParam;
import cn.com.dycc.party_org.organize.param.PartyInfoParam;

/**
 * 党组织业务层接口
 * @author linfa
 *
 */
public interface OrganizeService {
	
	/**
	 * 增加党组织 HttpServletRequest request,
	 * @param organizeParam
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public String addDeptParty(HttpServletRequest request,OrganizeParam organizeParam)throws NotFoundOrganizeException;
	
	/**
	 * 查询全部党组织信息
	 * @param request HttpServletRequest request,
	 * @param partyInfoParam
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public OrganizeUserInfo findOrganizeUser(HttpServletRequest request,PartyInfoParam partyInfoParam)throws NotFoundOrganizeException;
	
	/**
	 * 查询所有显示党组织树 用于点击后弹出的党组织
	 * @param request HttpServletRequest request,
	 * @param partyInfoParam
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public List<Object> findListPartyInfo(HttpServletRequest request,PartyInfoParam partyInfoParam)throws NotFoundOrganizeException;
	
	/**
	 * 显示党组织树，用于用户的党组织显示
	 * @param request
	 * @param partyInfoParam
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public List<Object> findListOrganiTree(HttpServletRequest request,PartyInfoParam partyInfoParam)throws NotFoundOrganizeException;
	
	/**
	 * 根据id查询党组织信息
	 * @param dept_id
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public OrganizeEntity findOrganizeByDeptId(HttpServletRequest request,String dept_id)throws NotFoundOrganizeException;
	
	/**
	 * 根据id更新党组织信息
	 * @param organizeParam
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public String updateOrganize(HttpServletRequest request,OrganizeParam organizeParam)throws NotFoundOrganizeException;
	
	/**
	 * 根据党组织id删除党组织信息
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public String deleteOrganize(HttpServletRequest request,String dept_id)throws NotFoundOrganizeException;
	
	/**
	 * 党组织列表
	 * @param request
	 * @param partyInfoParam
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public List<Object> findListOrganiLine(HttpServletRequest request,PartyInfoParam partyInfoParam)throws NotFoundOrganizeException;
	
	/**
	 * 显示默认选择的党组织树
	 * @param request
	 * @param partyInfoParam
	 * @param activity_id
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public List<Object> findListCheckTree(HttpServletRequest request,PartyInfoParam partyInfoParam,String[] listDeptId)throws NotFoundOrganizeException;
	
	/**
	 * 显示党组织树，父可以查子，子不能查父 树状
	 * @param request
	 * @param partyInfoParam
	 * @param activity_id
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public List<Object> findTreeByPid(HttpServletRequest request,PartyInfoParam partyInfoParam,String[] listDeptId)throws NotFoundOrganizeException;
	
	/**
	 * 显示党组织树，父可以查子，子不能查父   列表
	 * @param request
	 * @param partyInfoParam  HttpServletRequest request,
	 * @param activity_id
	 * @return
	 * @throws NotFoundOrganizeException
	 */
	public List<String> findTreeByPidLine(HttpServletRequest request,PartyInfoParam partyInfoParam,String party_dept)throws NotFoundOrganizeException;
	
	
}
